<template>
  <view class="userLayout pageBg" v-if="userinfo">
    <view :style="{ height: getNavBarHeight() + 'px' }"></view>
    <userSkeleton v-if="isLoading" />
    <template v-else>
      <view class="userInfo">
        <view class="avatar">
          <button
            open-type="chooseAvatar"
            @chooseavatar="onchooseAvatarFn"
            class="avatar_btn"
          >
            <image
              :src="avatarUrl ? avatarUrl : defaultUrl"
              mode="aspectFill"
            ></image>
          </button>
        </view>
        <view class="nickname">
          <text>呆呆怪</text>
        </view>
        <!-- <view class="address"
          >来自于：
          {{
            userinfo.address?.city ||
            userinfo.address?.province ||
            userinfo.address?.country
          }}
        </view> -->
      </view>

      <view class="section">
        <view class="list">
          <navigator
            url="/pages/classList/classList?name=我的下载&type=download"
            class="row"
          >
            <view class="left">
              <uni-icons type="download-filled" size="20"></uni-icons>
              <view class="text">我的下载</view>
            </view>
            <view class="right">
              <view class="text">{{ userinfo.downloadSize }}</view>
              <uni-icons type="right" size="15"></uni-icons>
            </view>
          </navigator>

          <navigator
            url="/pages/classList/classList?name=我的评分&type=score"
            class="row"
          >
            <view class="left">
              <uni-icons type="star-filled" size="20"></uni-icons>
              <view class="text">我的评分</view>
            </view>
            <view class="right">
              <view class="text">{{ userinfo.scoreSize }}</view>
              <uni-icons type="right" size="15"></uni-icons>
            </view>
          </navigator>

          <view class="row">
            <view class="left">
              <uni-icons type="chatboxes-filled" size="20"></uni-icons>
              <view class="text">联系客服</view>
            </view>
            <view class="right">
              <view class="text"></view>
              <uni-icons type="right" size="15"></uni-icons>
            </view>
            <!-- #ifdef MP -->
            <button open-type="contact">联系客服</button>
            <!-- #endif -->
            <!-- #ifndef MP -->
            <button @click="clickContact">拨打电话</button>
            <!-- #endif -->
          </view>
        </view>
      </view>

      <view class="section">
        <view class="list">
          <navigator
            url="/pages/noticeDetail/index?id=653507c6466d417a3718e94b"
            class="row"
          >
            <view class="left">
              <uni-icons type="notification-filled" size="20"></uni-icons>
              <view class="text">订阅更新</view>
            </view>
            <view class="right">
              <view class="text"></view>
              <uni-icons type="right" size="15" color="#aaa"></uni-icons>
            </view>
          </navigator>

          <navigator
            url="/pages/noticeDetail/index?id=6536358ce0ec19c8d67fbe82"
            class="row"
          >
            <view class="left">
              <uni-icons type="flag-filled" size="20"></uni-icons>
              <view class="text">常见问题</view>
            </view>
            <view class="right">
              <view class="text"></view>
              <uni-icons type="right" size="15" color="#aaa"></uni-icons>
            </view>
          </navigator>
        </view>
      </view>

      <navigator url="/pages/login/index" class="row">
        <button type="default">退出登陆</button>
      </navigator>
    </template>
  </view>
</template>

<script setup>
import { getNavBarHeight } from "@/utils/system.js";
import { getUserInfoAPI } from "@/apis/apis.js";
import { onLoad } from "@dcloudio/uni-app";
import { ref } from "vue";

import userSkeleton from "./components/userSkeleton.vue";

// 拨打电话API
const clickContact = () => {
  uni.makePhoneCall({
    phoneNumber: "114",
  });
};

const userinfo = ref({});
const getUserInfoFn = async () => {
  const res = await getUserInfoAPI();
  // console.log(res);
  userinfo.value = res.data;
};

const isLoading = ref(false);

onLoad(async () => {
  isLoading.value = true;
  await getUserInfoFn();
  isLoading.value = false;
});

// 更换头像
const avatarUrl = ref(null);
const defaultUrl = "../../static/images/default_avatar.png";
const onchooseAvatarFn = (e) => {
  avatarUrl.value = e.detail.avatarUrl;
};
</script>

<style lang="scss" scoped>
.userLayout {
  .userInfo {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 50rpx 0;
    .avatar {
      // position: relative;
      width: 160rpx;
      height: 160rpx;
      border-radius: 50%;

      .avatar_btn {
        width: 160rpx;
        height: 160rpx;
        border-radius: 50%;
        padding: 0rpx;
        border-style: none;

        image {
          width: 160rpx;
          height: 160rpx;
          border-radius: 50%;
        }
      }
    }
    .nickname {
      margin-top: 20rpx;
    }
    .ip {
      font-size: 44rpx;
      color: #333;
      padding: 20rpx 0 5rpx;
    }
    .address {
      font-size: 28rpx;
      color: #aaa;
    }
  }

  .section {
    width: 690rpx;
    margin: 50rpx auto;
    border: 1px solid #eee;
    border-radius: 10rpx;
    box-shadow: 0 0 30rpx rgba(0, 0, 0, 0.05);
    .list {
      .row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0 30rpx;
        height: 100rpx;
        border-bottom: 1px solid #eee;
        position: relative;
        background: #fff;
        &:last-child {
          border-bottom: 0;
        }
        .left {
          display: flex;
          align-items: center;
          :deep() {
            .uni-icons {
              color: $brand-theme-color !important;
            }
          }
          .text {
            padding-left: 20rpx;
            color: #666;
          }
        }
        .right {
          display: flex;
          align-items: center;
          .text {
            font-size: 28rpx;
            color: #aaa;
          }
        }
        button {
          position: absolute;
          top: 0;
          left: 0;
          height: 100rpx;
          width: 100%;
          opacity: 0;
        }
      }
    }
  }
}
</style>
